package cn.xorange.commons.data.annotation;


import cn.xorange.commons.data.constants.KeyType;
import cn.xorange.commons.data.constants.QueryType;

import java.lang.annotation.*;

/**
 * 标记数据字段
 *
 * @author yj
 */
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited//可以继承
@Target(value={ElementType.FIELD})
//标注MColumn的默认都是数据库字段，不是数据库字段的用tempField开关
public @interface MColumn {
    String name() default "";           // 字段描述
    String col() default  "";           // 数据库对应字段默认采用宽松式
    String remark() default "";         // 状态等补充描述
    String key() default KeyType.NOT;   //NOT不是ID， Auto自增长，DEFAULT配置的默认方式， 其他方式为ID获取方式，即为ID字段
    String queryType() default QueryType.EQUAL; //查询方式
    int maxLength() default 0;
    boolean treePid() default false;
    boolean treeLevel() default false;
    boolean treeNode() default false;
    boolean canNull() default false;    // 这里的false 并非必须非空，update做非空校验 为空时不传值，canNull=true upload 值不做非空校验
    boolean webShow() default true;      // web编辑时候是否显示
    boolean columnShow() default true;   // 列表是否显示
    int columnLength() default 0;        // 列显示长度，0为不限制
    int columnOrder() default 50;        // 列显示顺序
    boolean columnSort() default false;  // 是否可排序
}
